Skip to content

V16-UPD-CANCEL-M2: assert the real store/PTY freeze across TooLate (R821-M2) - #851

Merged
mergify[bot] merged 2 commits into
mainfrom
cursor/w5-v16-upd-cancel-m2
Oct 9, 2026
Merged

mergify[bot] merged 2 commits into
mainfrom
cursor/w5-v16-upd-cancel-m2

Conversation

@Cuarroc

@Cuarroc Cuarroc commented Oct 9, 2026 •

Copy link
Copy Markdown
Owner

Die Tests prüfen den Freeze nach TooLate jetzt gründlicher: volles Auftauen, Fehler nach gestartetem Installer, und die gemeinsame Fehlersprache.
Ein neuer Off-Diagonal-Fall belegt, dass ein Körperfehler bei installer_started=true Freeze und Slot behält.
Produktionscode unverändert; nur Coverage-Tests (R851 Runde 1).

Report

Scope

What changed (fix1)

  1. Helper begin_install_under_maintenance (R851-A3); dropped redundant let _ =.
  2. Negative control proves full thaw: !is_maintenance_active(), reserve_session ok (cancelled), bounded create_project ok, begin + finish_unstarted ok; error contains "download failed" (Kimi F1 / R851-A1).
  3. New off-diagonal body_error_after_installer_started_keeps_maintenance_freeze: finish_flight(Err, installer_started=true) surfaces body error; freeze and slot stay (Kimi F2).
  4. TooLate test also asserts install_when_idle refused and begin() error starts with ERR_REFUSED (R851-A2; vocabulary confirmed in update_cancel::begin).

Trailer: No-Test: coverage tests for existing freeze behaviour (R851 round 1).

Finding disposition

ID Source Severity Finding Disposition
Kimi F1 Kimi K3 local medium Negative control must prove full thaw + error text accepted — a2c9920
Kimi F2 Kimi K3 local medium Off-diagonal installer_started=true + body Err keeps freeze/slot accepted — a2c9920
Kimi F3 Kimi K3 local — not in Root fix list for this round no action (Root ordered F1/F2 only)
Kimi F4 Kimi K3 local — not in Root fix list for this round no action (Root ordered F1/F2 only)
GLM F1 GLM 5.2 local — not in Root fix list for this round no action
GLM F2 GLM 5.2 local — not in Root fix list for this round no action
GLM F3 GLM 5.2 local — not in Root fix list for this round no action
GLM F4 GLM 5.2 local low listed as source for this NACHBESSERN; overlaps R851-A3 helper clean-up accepted — a2c9920 (helper + drop let _)
R851-A1 Anthropic review low Full thaw asserts on negative control accepted — a2c9920
R851-A2 Anthropic review low/nit install_when_idle + ERR_REFUSED on TooLate accepted — a2c9920
R851-A3 Anthropic review nit Extract setup helper; drop redundant let _ accepted — a2c9920

Evidence

  • cargo test --manifest-path src-tauri/Cargo.toml --bin projecta maintenance → exit 0 (11 passed)
  • cargo test --manifest-path src-tauri/Cargo.toml --bin projecta update_cancel → exit 0 (12 passed)
  • bash scripts/ci/red-first.sh → exit 0 (No-Test path; count=0)
  • bash scripts/ci/gates.sh lane prepush → exit 0 (rust-suite 1919 passed; push-hook re-run also exit 0)
  • git push -u origin cursor/w5-v16-upd-cancel-m2 → exit 0; git ls-remote matches a2c9920d1e044371282ee67ca9d4d8406c8c89ce

Architecture drift

No new findings; tests only in main.rs test module.

NICHT ABGEDECKT

  • Linux does not compile #[cfg(windows)] tests; Windows lane runs in the merge queue.
  • No real updater/network/installer binary run; freeze path uses the same enter_or_abort / finish_flight glue as production without journaling or the plugin updater.
  • Does not re-prove wiring of installer_started computation from the journal in install_update_when_idle (R821-D1 remains).
  • Local Kimi/GLM review text files were not present in the worktree; F3/F4 (Kimi) and F1–F3 (GLM) dispositions follow Root's fix list only.

Review

Review: ausstehend (Stufe A). delta check pending Root.

Made with Cursor

Root-Abnahme (head a2c9920, 2026-10-09)

Tier A (seam main.rs, test module only, +145/-0, no production change). Author Cursor auto → three families.

Round Reviewer Verdict
R1 @ f95897a Kimi K3 local approve with conditions (F1/F2 medium: full-thaw control, Err + installer_started case)
R1 @ f95897a GLM 5.2 local approve with conditions (all low)
R1 @ f95897a Anthropic Sonnet 5.5 review-pr851-anthropic-f95897a61ec8.md approve (A1–A3 low/nit)
Delta @ a2c9920 GLM 5.2 local (prompt lists exactly main.rs) approve (F1/F2 low)
Delta @ a2c9920 Kimi K3 local conditions only on new lows/one medium, see below
ID Severity Disposition
Kimi R1 F1/F2, R851-A1/A2/A3 medium/low accepted + a2c9920d (full thaw asserted; Err + installer_started case added; install_when_idle refusal; ERR_REFUSED; helper)
Kimi delta F1 medium rejected as defect: the kept freeze after the installer started is the intended fail-closed design ("From Installing on, only the restart validation may thaw the app", main.rs:1232); recovery is the restart + journal validation (delivery_recovery, V16-06 #832), not an in-process path
Kimi delta F2 / GLM delta F2 low follow-up: also assert install_when_idle in the Err+installer_started test and after the pre-installer thaw
Kimi delta F3 low follow-up: a variant that derives installer_started from a real journal phase (the main.rs wiring stays under NICHT ABGEDECKT, as in #830)
Kimi delta F4 / GLM R1 F1 low noted: tests live in main.rs because enter/leave_database_maintenance are main.rs privates

No high finding → integrate.
NICHT ABGEDECKT (Root): main.rs wiring of installer_started (journal phase) is not driven end to end; Windows lane only in the merge queue.

Coverage for the existing finish_flight path: TooLate after installer
started keeps maintenance; a body error before start thaws again.

No-Test: coverage test for existing freeze behaviour across TooLate (R821-M2)
Co-authored-by: Cursor <cursoragent@cursor.com>
@mergify

mergify Bot commented Oct 9, 2026 •

Copy link
Copy Markdown
Contributor

Merge Protections

🟢 All 2 merge protections satisfied — ready to merge.

Show 2 satisfied protections

🟢 Paket-PR bringt seinen Bericht mit

Package branches (w<N>-, df<N>, ki-<N>, hq2-, dr-, z<N>-) must carry their report in the PR body, in a section that starts with "## Report".

  • body ~= (?m)^## Report

🟢 🚦 Auto-queue

When all merge protections are satisfied and these conditions match, this pull request will be queued automatically.

  • -conflict
  • -draft
  • base = main
  • check-success = gates (linux)
  • check-success = gates (windows)
  • check-success = red-first
  • label != do-not-merge
  • label = review-ok

Strengthen the TooLate/thaw tests (full thaw asserts, off-diagonal
installer_started=true body error, ERR_REFUSED begin vocabulary, shared
setup helper) without changing production freeze behaviour.

No-Test: coverage tests for existing freeze behaviour (R851 round 1)
Co-authored-by: Cursor <cursoragent@cursor.com>
@Cuarroc
Cuarroc marked this pull request as ready for review October 9, 2026 12:14
@Cuarroc Cuarroc added the review-ok Pipeline: review disposition complete, no open high finding label Oct 9, 2026
@chatgpt-codex-connector

chatgpt-codex-connector Bot commented Oct 9, 2026 •

Copy link
Copy Markdown

Codex Review Summary

This comment shows the latest Codex review activity on this pull request.

Review Status Commit Review trigger
📝 Code Review ✅ Completed 2026-10-09T12:18:21.365448Z a2c9920 Draft marked ready
ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review" or "@codex security review".

Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings.

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: a2c9920d1e

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Comment thread src-tauri/src/main.rs
Comment on lines +4401 to +4405
/// Enter a single-flight install already under store/PTY maintenance.
async fn begin_install_under_maintenance<'a>(
state: &'a crate::update_cancel::UpdateCancel,
pty: &PtyManager,
store: &super::Store,

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P2 Badge Halte main.rs unter der Nahtstellen-Baseline

Auf diesem Commit ergibt git show 70c914c:src-tauri/src/main.rs | wc -l 5.137 Zeilen. Das Z3-Abnahmekriterium in docs/PLAN.md:260-263 verlangt für diese Naht ausdrücklich < 5.133; der Testnachtrag überschreitet die Grenze somit um fünf Zeilen und verhindert, dass Z3 trotz grüner Tests als fertig gelten kann. Bitte mindestens fünf Zeilen deduplizieren oder kompaktieren.

AGENTS.md reference: AGENTS.md:L31-L32

Useful? React with 👍 / 👎.

@mergify mergify Bot added the queued label Oct 9, 2026
@mergify
mergify Bot merged commit 41a11e8 into main Oct 9, 2026
17 checks passed
@mergify
mergify Bot deleted the cursor/w5-v16-upd-cancel-m2 branch October 9, 2026 12:40
@mergify

mergify Bot commented Oct 9, 2026

Copy link
Copy Markdown
Contributor

Merge Queue Status

This pull request spent 18 minutes 47 seconds in the queue, including 12 minutes 20 seconds running CI.

Required conditions to merge
  • check-success = gates (linux)
  • check-success = gates (windows)
  • check-success = red-first
  • github-review-approved [🛡 GitHub repository ruleset rule main-pr-required-checks]
  • label != do-not-merge
  • all of [🛡 Merge Protections rule Paket-PR bringt seinen Bericht mit]:
  • any of [🛡 GitHub repository ruleset rule main-pr-required-checks]:
    • check-success = @github-actions/gates (linux)
    • check-neutral = @github-actions/gates (linux)
    • check-skipped = @github-actions/gates (linux)
  • any of [🛡 GitHub repository ruleset rule main-pr-required-checks]:
    • check-success = @github-actions/gates (windows)
    • check-neutral = @github-actions/gates (windows)
    • check-skipped = @github-actions/gates (windows)
  • any of [🛡 GitHub repository ruleset rule main-pr-required-checks]:
    • check-success = @github-actions/red-first
    • check-neutral = @github-actions/red-first
    • check-skipped = @github-actions/red-first
  • any of [🛡 GitHub repository ruleset rule main-pr-required-checks]:
    • check-neutral = @mergify/Mergify Merge Protections
    • check-skipped = @mergify/Mergify Merge Protections
    • check-success = @mergify/Mergify Merge Protections

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

review-ok Pipeline: review disposition complete, no open high finding

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant